<?php

class Productos extends BaseProductos {

    const TIPO_OPERACION_COMPRA=1;

    public function __toString() {
        return $this->getProArticulo() . ' - ' . $this->getProTalle();
    }

    public function getPrecioProd() {
        return $this->getProPrecio();
    }

    public function getGananciaProd() {
        return $this->getProGanancia();
    }

    public function getProveedorProd() {
        $proveedor = $this->getProveedores();
        if (!empty($proveedor)) {
            return $proveedor->getPvdNombre();
        }
        return '--';
    }

    public function getMarcaProd() {
        $marca = $this->getMarcas();
        if (!empty($marca)) {
            return $marca->getMarNombre();
        }
        return '--';
    }

    public function getRubroProd() {
        $rubro = $this->getRubros();
        if (!empty($rubro)) {
            return $rubro->getRubNombre();
        }
        return '--';
    }

    public function getPrecioVenta() {

        $iva = sfConfig::get('app_iva') / 100;
        $precio = $this->getProPrecio();
        $ganancia = $this->getProGanancia() / 100;

        $precioConIva = $precio + ($precio * $iva);
        $precioConGanancia = $precioConIva + ($precioConIva * $ganancia);
        $precioTotal = round($precioConGanancia, 2);

        return $precioTotal;
    }

    public function actualizarStock($cantidad, $tipoOp,$vtaCondicional=false){
        $stockActual = $this->getProCantidad();
        $disponibActual = $this->getProDisponible();
        $tipoCpra = sfConfig::get('app_caja_operacion_egreso');
        if($tipoOp==$tipoCpra){
            $stockFinal = $stockActual + $cantidad;
            $disponibilidad = $disponibActual + $cantidad;
        }else{
            $disponibilidad = $disponibActual - $cantidad;
            if(!$vtaCondicional){
                $stockFinal = $stockActual - $cantidad;
            }else{
                $stockFinal = $stockActual;
            }
        }
        $this->setProCantidad($stockFinal);
        $this->setProDisponible($disponibilidad);
        $this->save();
    }

}
